$(function(){

	// 打开登录框
	$('.login_btn').click(function(){
        $('.login_form_con').show();
	});
	
	// 点击关闭按钮关闭登录框或者注册框
	$('.shutoff').click(function(){
		$(this).closest('form').hide();
	});

    // 隐藏错误
    $(".login_form #mobile").focus(function(){
        $("#login-mobile-err").hide();
    });
    $(".login_form #password").focus(function(){
        $("#login-password-err").hide();
    });

    $(".register_form #mobile").focus(function(){
        $("#register-mobile-err").hide();
    });
    $(".register_form #imagecode").focus(function(){
        $("#register-image-code-err").hide();
    });
    $(".register_form #smscode").focus(function(){
        $("#register-sms-code-err").hide();
    });
    $(".register_form #password").focus(function(){
        $("#register-password-err").hide();
    });


	// 点击输入框，提示文字上移
	$('.form_group').on('click focusin',function(){
		$(this).children('.input_tip').animate({'top':-5,'font-size':12},'fast').siblings('input').focus().parent().addClass('hotline');
	});

	// 输入框失去焦点，如果输入框为空，则提示文字下移
	$('.form_group input').on('blur focusout',function(){
		$(this).parent().removeClass('hotline');
		var val = $(this).val();
		if(val=='')
		{
			$(this).siblings('.input_tip').animate({'top':22,'font-size':14},'fast');
		}
	});


	// 打开注册框  注册
	$('.register_btn').click(function(){
		$('.register_form_con').show();
		// 点击注册,打开注册框,显示验证码 lzw
        generateImageCode();

	});


	// 登录框和注册框切换  立即注册
	$('.to_register').click(function(){
		$('.login_form_con').hide();
		$('.register_form_con').show();
		// 在登陆框下方的立即注册,to_register,登陆框隐藏,注册框打开lzw,显示验证码
        generateImageCode();

	});

	// 登录框和注册框切换   立即登录
	$('.to_login').click(function(){
		$('.login_form_con').show();
		$('.register_form_con').hide();
	});

	// 根据地址栏的hash值来显示用户中心对应的菜单
	var sHash = window.location.hash;
	if(sHash!=''){
		var sId = sHash.substring(1);
		var oNow = $('.'+sId);		
		var iNowIndex = oNow.index();
		$('.option_list li').eq(iNowIndex).addClass('active').siblings().removeClass('active');
		oNow.show().siblings().hide();
	}

	// 用户中心菜单切换
	var $li = $('.option_list li');
	var $frame = $('#main_frame');

	$li.click(function(){
		if($(this).index()==5){
			$('#main_frame').css({'height':900});
		}
		else{
			$('#main_frame').css({'height':660});
		}
		$(this).addClass('active').siblings().removeClass('active');

	});

    // TODO 登录表单提交
    $(".login_form_con").submit(function (e) {
        e.preventDefault();
        var mobile = $(".login_form #mobile").val();
        var password = $(".login_form #password").val();

        if (!mobile) {
            $("#login-mobile-err").show();
            return;
        }

        if (!password) {
            $("#login-password-err").show();
            return;
        }

        // 发起登录请求,得自己写呀
        login_data={
            "mobile": mobile,
            "password": password
        };

        $.ajax(
            {
                url: "/passport/login",
                method: "POST",
                headers: {
                "X-CSRFToken": getCookie("csrf_token")},
                data: JSON.stringify(login_data),
                contentType: "application/json",
                dataType: "json",
                success: function (resp) {
                    if(resp.errno==0){
                        location.reload();
                    }else{
                        $("#login-password-err").html(resp.errmsg).show();
                    }
                },
                error: function () {

                }
            }
        )

    });


    // TODO 注册按钮点击
    $(".register_form_con").submit(function (e) {
        // 阻止默认提交操作
        e.preventDefault();


		// 取到用户输入的内容
        // 手机号
        var mobile = $("#register_mobile").val();
        // 手机验证码
        var smscode = $("#smscode").val();
        // 密码
        var password = $("#register_password").val();

		if (!mobile) {
            $("#register-mobile-err").show();
            return;
        }
        if (!smscode) {
            $("#register-sms-code-err").show();
            return;
        }
        if (!password) {
            $("#register-password-err").html("请填写密码!");
            $("#register-password-err").show();
            return;
        }

		if (password.length < 6) {
            $("#register-password-err").html("密码长度不能少于6位");
            $("#register-password-err").show();
            return;
        }
        var register_datas = {
            "mobile": mobile,
            "smscode": smscode,
            "password": password
        };

        // 发起注册请求,我来写ajax01
        $.ajax({
            url: "/passport/register",
            type: "post",
            headers: {
                "X-CSRFToken": getCookie("csrf_token")},
            data: JSON.stringify(register_datas),
            contentType: "application/json",
            dataType: "json",
            success: function (resp) {
                if(resp.errno==0){
                    // 刷新当前页面
                    location.reload();
                }else{
                    $("#register-password-err").html(resp.errmsg).show();
                }
            },
            error: function () {

            }


        })

    })


});

// function fnLogout(){
//     $.ajax({
//         url:"/passport/logout",
//         type: "get",
//         success: function (resp) {
//             if(resp.errno=="0"){
//                 location.reload();
//                 alert("退出成功")
//             }else{
//                 alert(resp.errmsg)
//             }
//         }
//
//     })
// }

// 退出登陆函数
function fnLogout() {
    $.get("/passport/logout", function (resp) {
            if(resp.errno=="0"){
                location.reload();
                // alert("退出成功")
            }else {
                alert(resp.errmsg)
            }
    })

}

var imageCodeId = "";

// TODO 生成一个图片验证码的编号，并设置页面中图片验证码img标签的src属性
// 生成一个图片验证码请求
function generateImageCode() {
    // 1. 通过uuid生成验证码编号
    imageCodeId = generateUUID();

    // 2. 拼接验证码地址
    var imagCodeUrl = "/passport/image_code?code_id="+imageCodeId;

    // 3. 设置验证码图片标签的src
    $(".get_pic_code").prop({"src": imagCodeUrl})
}

// 发送短信验证码
function sendSMSCode(){
    // 校验参数，保证输入框有数据填写
    $(".get_code").removeAttr("onclick");
    var mobile = $("#register_mobile").val();
    if (!mobile) {
        $("#register-mobile-err").html("请填写正确的手机号！").show();
        // $("#register-mobile-err").show();
        $(".get_code").attr("onclick", "sendSMSCode();");
        return;
    }
    var imageCode = $("#imagecode").val();
    if (!imageCode) {
        $("#image-code-err").html("请填写验证码！").show();
        // $("#image-code-err").show();
        $(".get_code").attr("onclick", "sendSMSCode();");
        return;
    }

    // TODO 发送短信验证码
    params = {
         "mobile": mobile,
         "image_code": imageCode,
         "image_code_id": imageCodeId
     };
        $.ajax(
            {
                // 请求地址
                url: "/passport/sms_code",
                // 请求方式
                method: "POST",
                headers: {
                "X-CSRFToken": getCookie("csrf_token")},
                // 请求内容????????????????
                data: JSON.stringify(params),
                // 请求内容的数据类型
                contentType: "application/json",
                // 响应数据格式
                dataType: "json",

                // 请求成功回调函数
                success: function (resp) {
                    // 短信发送成功
                    if(resp.errno==0){
                        // 倒计时60秒，60秒后允许用户再次点击发送短信验证码的按钮
                        var num = 10;
                        //定义一个计时器
                        var t = setInterval(function () {
                            // 如果num==1,结束计时
                            if(num==1){
                                clearInterval(t);
                                generateImageCode();
                                // 将点击获取验证码的文本恢复到原来的位置, 用户自定义的参数,实际是添加了点击事件
                                $(".get_code").html("点击获取验证码").attr("onclick", "sendSMSCode();");
                                // $(".get_code").attr("onclick", "sendMSMCode();")

                            }else{
                                num = num - 1;
                                // 显示倒计时
                                $(".get_code").html(num + "秒/s");
                            }

                        },
                        1000
                        )

                    }else{
                        // 后端验证不通过,返回错误,分两类,验证码输入错误,显示错误
                        $("#register-sms-code-err").html(resp.errmsg).show();
                        // $("#register-sms-code-err").show();
                        //将点击按钮事件恢复
                        $(".get_code").html("点击获取验证码").attr("onclick", "sendSMSCode();");
                        // 如果errno是4004,说明验证码图形验证码输入错误,重新获取验证码
                        if(resp.errno=="4004"){
                            generateImageCode();
                            $(".get_code").html("点击获取验证码").attr("onclick", "sendSMSCode();")
                        }
                    }
                },
                // 请求失败回调函数
                error: function () {

                }



            }
        )
}

// 调用该函数模拟点击左侧按钮
function fnChangeMenu(n) {
    var $li = $('.option_list li');
    if (n >= 0) {
        $li.eq(n).addClass('active').siblings().removeClass('active');
        // 执行 a 标签的点击事件
        $li.eq(n).find('a')[0].click()
    }
}

// 一般页面的iframe的高度是660
// 新闻发布页面iframe的高度是900
function fnSetIframeHeight(num){
	var $frame = $('#main_frame');
	$frame.css({'height':num});
}

function getCookie(name) {
    var r = document.cookie.match("\\b" + name + "=([^;]*)\\b");
    return r ? r[1] : undefined;
}

function generateUUID() {
    var d = new Date().getTime();
    if(window.performance && typeof window.performance.now === "function"){
        d += performance.now(); //use high-precision timer if available
    }
    var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
        var r = (d + Math.random()*16)%16 | 0;
        d = Math.floor(d/16);
        return (c=='x' ? r : (r&0x3|0x8)).toString(16);
    });
    return uuid;
}

